import { defineConfig,loadEnv } from 'vite'
import viteBaseConfig from './vite.base.config';
import viteDevConfig from './vite.dev.config';
import viteProdConfig from './vite.prod.config';

const env = process.env.NODE_ENV    // nodejs中内置process环境变量 开发环境为development 生产环境为production

// console.log("env",env);

// 策略模式：可以减少if else 判断
const envResolver = {
    "build": (command)=>{
        return {...viteBaseConfig,...viteProdConfig}
    },
    "serve": (command)=>{
        return {...viteBaseConfig,...viteDevConfig}
    }
    // "serve":()=>Object.assign({},viteBaseConfg, viteDevconfg)
}


export default defineConfig(({command,mode})=>{
    // console.log("command",command); // 开发环境为serve 生产环境为build,目前只做vite配置文件环境区分
    // console.log("mode",mode);
    // console.log(loadEnv(mode,process.cwd(),""));   // 获取环境变量,默认是.env,如果当前运行模式为生产环境，则获取.env.production将覆盖.env中的变量。mode:当前模式，process.cwd():当前运行目录
    // console.log(mode);
    
    return command && envResolver[command]()
})